home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
Env.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-16
|
2KB
|
73 lines
#ifndef Env_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define Env_First
#include "Object.h"
#include "Symbol.h"
enum EnvLevel {
eEnvGlobal,
eEnvUser,
eEnvLocal,
eEnvEnvironment,
eEnvCommand,
eEnvChange
};
//---- EnvRec ------------------------------------------------------------------
class EnvRec : public Object {
public:
Symbol name;
char *value, *type;
EnvLevel level;
bool changed;
Object *op, **op2;
public:
MetaDef(EnvRec);
EnvRec(Symbol n, char *v, char *t, EnvLevel l);
~EnvRec();
void ChangeValue(char *v, char *t, EnvLevel l);
void InspectorId(char *buf, int bufSize);
void Read(Object *op);
void Write(Object *op);
Object *Read2();
void Write2(Object *op);
int Compare(Object*);
};
//---- Env ---------------------------------------------------------------------
class Env: public Object {
static class OrdCollection *table;
static bool terminated;
public:
MetaDef(Env);
Env();
~Env();
static void Init();
static char *getvalue(char *name);
static OrdCollection *GetTable()
{ return table; }
static bool Defined(char *name)
{ return Env::getvalue(name) != 0; }
static int GetValue(char *name, int dflt);
static char *GetValue(char *name, char *dflt);
static void SetValue(char *name, char *value,
EnvLevel level= eEnvChange, char *type= 0);
static void SetValue(char *name, EnvLevel level= eEnvChange);
static void SetValue(char *name, int value);
static void SetValue(char *name, double value);
static void SetBoolValue(char *name, bool value);
static void Save();
static EnvRec *Lookup(char *n);
static void ReadFile(char *fname, EnvLevel level);
static bool Bind(Object *&op, char *name);
};
#endif